[INFO] cloning repository https://github.com/AffogatoLang/moka-rust
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/AffogatoLang/moka-rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAffogatoLang%2Fmoka-rust", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAffogatoLang%2Fmoka-rust'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] e1bad1d529682827a44b75ceccedb7069d5cce16
[INFO] fixing AffogatoLang/moka-rust against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=end=2015,2024 for pr-157817-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAffogatoLang%2Fmoka-rust" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/AffogatoLang/moka-rust
[INFO] finished tweaking git repo https://github.com/AffogatoLang/moka-rust
[INFO] tweaked toml for git repo https://github.com/AffogatoLang/moka-rust written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/AffogatoLang/moka-rust on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/AffogatoLang/moka-rust already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: Cargo.toml: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr] warning: `moka_rust` (manifest) generated 1 warning
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 078a4c4d4c9354764e55bfa3f09f2d6f48db8dc4cc18e3c5b682961f71e26408
[INFO] running `Command { std: "docker" "start" "078a4c4d4c9354764e55bfa3f09f2d6f48db8dc4cc18e3c5b682961f71e26408", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "078a4c4d4c9354764e55bfa3f09f2d6f48db8dc4cc18e3c5b682961f71e26408" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "078a4c4d4c9354764e55bfa3f09f2d6f48db8dc4cc18e3c5b682961f71e26408", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "078a4c4d4c9354764e55bfa3f09f2d6f48db8dc4cc18e3c5b682961f71e26408" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=end=2015,2024", kill_on_drop: false }`
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating Cargo.toml from 2015 edition to 2018
[INFO] [stderr] warning: Cargo.toml: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr] warning: `moka_rust` (manifest) generated 1 warning
[INFO] [stderr]    Compiling libc v0.2.34
[INFO] [stderr]    Compiling cc v1.0.3
[INFO] [stderr]    Compiling cfg-if v0.1.2
[INFO] [stderr]    Compiling pkg-config v0.3.9
[INFO] [stderr]     Checking void v1.0.2
[INFO] [stderr]     Checking serde v1.0.23
[INFO] [stderr]    Compiling winapi v0.2.8
[INFO] [stderr]    Compiling serde_derive_internals v0.17.0
[INFO] [stderr]     Checking unreachable v1.0.0
[INFO] [stderr]    Compiling kernel32-sys v0.2.2
[INFO] [stderr]     Checking thread_local v0.3.4
[INFO] [stderr]    Compiling walkdir v0.1.8
[INFO] [stderr]     Checking utf8-ranges v1.0.0
[INFO] [stderr]    Compiling filetime v0.1.14
[INFO] [stderr]    Compiling xattr v0.1.11
[INFO] [stderr]     Checking regex-syntax v0.4.1
[INFO] [stderr]    Compiling moka_rust v0.1.2 (/opt/rustwide/workdir)
[INFO] [stderr]    Migrating src/build.rs from 2015 edition to 2018
[INFO] [stderr]     Checking memchr v2.0.1
[INFO] [stderr]    Compiling tar v0.4.14
[INFO] [stderr]     Checking rand v0.3.18
[INFO] [stderr]     Checking aho-corasick v0.6.4
[INFO] [stderr]     Checking dtoa v0.4.2
[INFO] [stderr]     Checking strsim v0.6.0
[INFO] [stderr]    Compiling bzip2-sys v0.1.6
[INFO] [stderr]     Checking num-traits v0.1.41
[INFO] [stderr]    Compiling serde_derive v1.0.23
[INFO] [stderr]     Checking nom v1.2.4
[INFO] [stderr]     Checking enum-set v0.0.7
[INFO] [stderr]     Checking regex v0.2.3
[INFO] [stderr]     Checking semver v0.2.3
[INFO] [stderr]     Checking lazy_static v0.1.16
[INFO] [stderr]    Compiling bzip2 v0.3.2
[INFO] [stderr]    Compiling libpcre-sys v0.2.2
[INFO] [stderr]     Checking pcre v0.2.3
[INFO] [stderr]     Checking toml v0.4.5
[INFO] [stderr]     Checking serde_json v1.0.7
[INFO] [stderr]     Checking docopt v0.8.1
[INFO] [stderr]     Checking uuid v0.5.1
[INFO] [stderr]    Migrating src/lib.rs from 2015 edition to 2018
[INFO] [stderr]        Fixed src/common/lexer/lexer.rs (2 fixes)
[INFO] [stderr]        Fixed src/common/lexer/ruleset.rs (1 fix)
[INFO] [stderr]        Fixed src/common/util/file_util.rs (1 fix)
[INFO] [stderr]        Fixed src/compile/compile_runner.rs (2 fixes)
[INFO] [stderr]        Fixed src/common/lexer/lex_rule_loader.rs (1 fix)
[INFO] [stderr]        Fixed src/parse/parse_runner.rs (3 fixes)
[INFO] [stderr]    Migrating src/main.rs from 2015 edition to 2018
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 14.63s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: nom v1.2.4
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] [stderr] crater-edition-check: moka_rust v0.1.2 (/opt/rustwide/workdir) updating edition from 2015 to 2018
[INFO] [stderr]    Compiling moka_rust v0.1.2 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/build.rs:28:13
[INFO] [stdout]    |
[INFO] [stdout] 28 |             fs::create_dir_all(&target_dir.parent().unwrap());
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 28 |             let _ = fs::create_dir_all(&target_dir.parent().unwrap());
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> src/build.rs:29:86
[INFO] [stdout]    |
[INFO] [stdout] 29 |             let mut outfile = write_opts.open(&target_dir).unwrap_or_else(|e| panic!(e));
[INFO] [stdout]    |                                                                                      ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: `#[warn(non_fmt_panics)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]    |
[INFO] [stdout] 29 |             let mut outfile = write_opts.open(&target_dir).unwrap_or_else(|e| panic!("{}", e));
[INFO] [stdout]    |                                                                                      +++++
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]    |
[INFO] [stdout] 29 -             let mut outfile = write_opts.open(&target_dir).unwrap_or_else(|e| panic!(e));
[INFO] [stdout] 29 +             let mut outfile = write_opts.open(&target_dir).unwrap_or_else(|e| std::panic::panic_any(e));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]   --> src/common/lexer/lexer.rs:41:20
[INFO] [stdout]    |
[INFO] [stdout] 41 |         Lexer::new((rules), is_verbose)
[INFO] [stdout]    |                    ^     ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 41 -         Lexer::new((rules), is_verbose)
[INFO] [stdout] 41 +         Lexer::new(rules , is_verbose)
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]   --> src/common/lexer/lexer.rs:41:20
[INFO] [stdout]    |
[INFO] [stdout] 41 |         Lexer::new((rules), is_verbose)
[INFO] [stdout]    |                    ^     ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 41 -         Lexer::new((rules), is_verbose)
[INFO] [stdout] 41 +         Lexer::new(rules , is_verbose)
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/common/module/module_def.rs:43:45
[INFO] [stdout]    |
[INFO] [stdout] 43 |                      path, line, col, error.description());
[INFO] [stdout]    |                                             ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]   --> src/common/lexer/rule.rs:61:76
[INFO] [stdout]    |
[INFO] [stdout] 61 |     pub fn match_at<'a>(&'a mut self, src:&'a String, pos:usize) -> Option<Match> {
[INFO] [stdout]    |                          --                -- the lifetime is named here   ^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                          |
[INFO] [stdout]    |                          the lifetime is named here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 61 |     pub fn match_at<'a>(&'a mut self, src:&'a String, pos:usize) -> Option<Match<'a>> {
[INFO] [stdout]    |                                                                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/common/lexer/token.rs:3:10
[INFO] [stdout]   |
[INFO] [stdout] 3 | #[derive(Serialize, Deserialize, Debug, Clone)]
[INFO] [stdout]   |          ^^^^^^^^^
[INFO] [stdout]   |          |
[INFO] [stdout]   |          `Token` is not local
[INFO] [stdout]   |          `Serialize` is not local
[INFO] [stdout]   |          move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_Token`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]   = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/common/lexer/token.rs:3:21
[INFO] [stdout]   |
[INFO] [stdout] 3 | #[derive(Serialize, Deserialize, Debug, Clone)]
[INFO] [stdout]   |                     -^^^^^^^^^^
[INFO] [stdout]   |                     |
[INFO] [stdout]   |                     `Token` is not local
[INFO] [stdout]   |                     `Deserialize` is not local
[INFO] [stdout]   |                     move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Token`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/common/module/module_def.rs:10:17
[INFO] [stdout]    |
[INFO] [stdout] 10 | #[derive(Debug, Deserialize)]
[INFO] [stdout]    |                 -^^^^^^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 `ModuleOpts` is not local
[INFO] [stdout]    |                 `Deserialize` is not local
[INFO] [stdout]    |                 move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_ModuleOpts`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/common/module/module_def.rs:58:17
[INFO] [stdout]    |
[INFO] [stdout] 58 | #[derive(Debug, Deserialize)]
[INFO] [stdout]    |                 -^^^^^^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 `MetaOpts` is not local
[INFO] [stdout]    |                 `Deserialize` is not local
[INFO] [stdout]    |                 move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_MetaOpts`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/common/module/module_def.rs:66:17
[INFO] [stdout]    |
[INFO] [stdout] 66 | #[derive(Debug, Deserialize)]
[INFO] [stdout]    |                 -^^^^^^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 `OptionsOpts` is not local
[INFO] [stdout]    |                 `Deserialize` is not local
[INFO] [stdout]    |                 move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_OptionsOpts`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]   --> src/common/module/module_def.rs:84:41
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub fn new(path:&'b Path) -> Result<Module, String> {
[INFO] [stdout]    |                      --                 ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                      |
[INFO] [stdout]    |                      the lifetime is named here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'b`
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub fn new(path:&'b Path) -> Result<Module<'b>, String> {
[INFO] [stdout]    |                                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/main.rs:33:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | #[derive(Debug, Deserialize)]
[INFO] [stdout]    |                 -^^^^^^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 `Args` is not local
[INFO] [stdout]    |                 `Deserialize` is not local
[INFO] [stdout]    |                 move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Args`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/common/module/module_def.rs:43:45
[INFO] [stdout]    |
[INFO] [stdout] 43 |                      path, line, col, error.description());
[INFO] [stdout]    |                                             ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/main.rs:33:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | #[derive(Debug, Deserialize)]
[INFO] [stdout]    |                 -^^^^^^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 `Args` is not local
[INFO] [stdout]    |                 `Deserialize` is not local
[INFO] [stdout]    |                 move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Args`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]   --> src/common/lexer/rule.rs:61:76
[INFO] [stdout]    |
[INFO] [stdout] 61 |     pub fn match_at<'a>(&'a mut self, src:&'a String, pos:usize) -> Option<Match> {
[INFO] [stdout]    |                          --                -- the lifetime is named here   ^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                          |
[INFO] [stdout]    |                          the lifetime is named here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 61 |     pub fn match_at<'a>(&'a mut self, src:&'a String, pos:usize) -> Option<Match<'a>> {
[INFO] [stdout]    |                                                                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/common/lexer/token.rs:3:10
[INFO] [stdout]   |
[INFO] [stdout] 3 | #[derive(Serialize, Deserialize, Debug, Clone)]
[INFO] [stdout]   |          ^^^^^^^^^
[INFO] [stdout]   |          |
[INFO] [stdout]   |          `Token` is not local
[INFO] [stdout]   |          `Serialize` is not local
[INFO] [stdout]   |          move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_Token`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]   = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/common/lexer/token.rs:3:21
[INFO] [stdout]   |
[INFO] [stdout] 3 | #[derive(Serialize, Deserialize, Debug, Clone)]
[INFO] [stdout]   |                     -^^^^^^^^^^
[INFO] [stdout]   |                     |
[INFO] [stdout]   |                     `Token` is not local
[INFO] [stdout]   |                     `Deserialize` is not local
[INFO] [stdout]   |                     move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Token`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/common/module/module_def.rs:10:17
[INFO] [stdout]    |
[INFO] [stdout] 10 | #[derive(Debug, Deserialize)]
[INFO] [stdout]    |                 -^^^^^^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 `ModuleOpts` is not local
[INFO] [stdout]    |                 `Deserialize` is not local
[INFO] [stdout]    |                 move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_ModuleOpts`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/common/module/module_def.rs:58:17
[INFO] [stdout]    |
[INFO] [stdout] 58 | #[derive(Debug, Deserialize)]
[INFO] [stdout]    |                 -^^^^^^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 `MetaOpts` is not local
[INFO] [stdout]    |                 `Deserialize` is not local
[INFO] [stdout]    |                 move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_MetaOpts`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/common/module/module_def.rs:66:17
[INFO] [stdout]    |
[INFO] [stdout] 66 | #[derive(Debug, Deserialize)]
[INFO] [stdout]    |                 -^^^^^^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 `OptionsOpts` is not local
[INFO] [stdout]    |                 `Deserialize` is not local
[INFO] [stdout]    |                 move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_OptionsOpts`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]   --> src/common/module/module_def.rs:84:41
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub fn new(path:&'b Path) -> Result<Module, String> {
[INFO] [stdout]    |                      --                 ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                      |
[INFO] [stdout]    |                      the lifetime is named here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'b`
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub fn new(path:&'b Path) -> Result<Module<'b>, String> {
[INFO] [stdout]    |                                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 15.60s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: nom v1.2.4
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating Cargo.toml from 2015 edition to 2018
[INFO] [stderr]     Checking moka_rust v0.1.2 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/build.rs:28:13
[INFO] [stdout]    |
[INFO] [stdout] 28 |             fs::create_dir_all(&target_dir.parent().unwrap());
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 28 |             let _ = fs::create_dir_all(&target_dir.parent().unwrap());
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> src/build.rs:29:86
[INFO] [stdout]    |
[INFO] [stdout] 29 |             let mut outfile = write_opts.open(&target_dir).unwrap_or_else(|e| panic!(e));
[INFO] [stdout]    |                                                                                      ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: `#[warn(non_fmt_panics)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: add a "{}" format string to `Display` the message
[INFO] [stdout]    |
[INFO] [stdout] 29 |             let mut outfile = write_opts.open(&target_dir).unwrap_or_else(|e| panic!("{}", e));
[INFO] [stdout]    |                                                                                      +++++
[INFO] [stdout] help: or use std::panic::panic_any instead
[INFO] [stdout]    |
[INFO] [stdout] 29 -             let mut outfile = write_opts.open(&target_dir).unwrap_or_else(|e| panic!(e));
[INFO] [stdout] 29 +             let mut outfile = write_opts.open(&target_dir).unwrap_or_else(|e| std::panic::panic_any(e));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating src/lib.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/main.rs from 2018 edition to 2021
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 16.67s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: nom v1.2.4
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] [stderr] crater-edition-check: moka_rust v0.1.2 (/opt/rustwide/workdir) updating edition from 2018 to 2021
[INFO] [stderr]    Compiling moka_rust v0.1.2 (/opt/rustwide/workdir)
[INFO] [stdout] error: format argument must be a string literal
[INFO] [stdout]   --> src/build.rs:29:86
[INFO] [stdout]    |
[INFO] [stdout] 29 |             let mut outfile = write_opts.open(&target_dir).unwrap_or_else(|e| panic!(e));
[INFO] [stdout]    |                                                                                      ^
[INFO] [stdout]    |
[INFO] [stdout] help: you might be missing a string literal to format with
[INFO] [stdout]    |
[INFO] [stdout] 29 |             let mut outfile = write_opts.open(&target_dir).unwrap_or_else(|e| panic!("{}", e));
[INFO] [stdout]    |                                                                                      +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `moka_rust` (build script) due to 1 previous error
[INFO] running `Command { std: "docker" "inspect" "078a4c4d4c9354764e55bfa3f09f2d6f48db8dc4cc18e3c5b682961f71e26408", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "078a4c4d4c9354764e55bfa3f09f2d6f48db8dc4cc18e3c5b682961f71e26408", kill_on_drop: false }`
[INFO] [stdout] 078a4c4d4c9354764e55bfa3f09f2d6f48db8dc4cc18e3c5b682961f71e26408
